import axios from 'axios'
import { ElMessage } from 'element-plus'
import qs from 'qs'
// 模型服务请求不使用全局 loading 状态

// 专用于模型服务的通用 axios 封装（不绑定固定 baseURL）
const service = axios.create({
    headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' },
    paramsSerializer: params => {
        if (params) {
            return qs.stringify(params, { arrayFormat: 'repeat' })
        }
    },
    transformRequest: (data, headers) => {
        if (headers['Content-Type']) {
            if ((headers['Content-Type']).indexOf('multipart/form-data') > -1) {
                headers['Content-Type'] = ''
                const formData = new FormData()
                if (data && typeof data === 'object') {
                    for (let key in data) {
                        formData.append(key, data[key])
                    }
                }
                return formData
            } else if ((headers['Content-Type']).indexOf('application/json') > -1) {
                return JSON.stringify(data)
            } else {
                return qs.stringify(data || {}, { arrayFormat: 'repeat' })
            }
        } else {
            return qs.stringify(data || {}, { arrayFormat: 'repeat' })
        }
    }
})

// 请求拦截器：不使用全页面 loading 状态
service.interceptors.request.use(
    config => {
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

// 响应拦截器：直接返回 response.data，错误统一提示
service.interceptors.response.use(
    response => {
        return response.data
    },
    error => {
        console.log('err', error)
        ElMessage.error(error.message || '请求失败')
        return Promise.reject(error)
    }
)

export default service